package d1_exception;

import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExceptionDemo05 {
    public static void main(String[] args) {
        //目标: 异常的处理机制
        System.out.println("开始。。。");
        try {
            parseDate("2023-11-11 11:11:11");
            System.out.println("执行成功了");
        } catch (Exception e) {
//            throw new RuntimeException(e);//这是在将异常对象抛出去,抛给JVM
            e.printStackTrace();//记录到日志
            System.out.println("执行失败了");//将信息相应给用户,(不是给一对乱七八糟的信息给用户)
        }
        System.out.println("结束。。。");

    }
    //没用try --catch-->会将异常抛到上面的方法调用者,调用者再将异常抛给JVM,然后虚拟机将程序给干掉
    //用了try--catch就是把异常信息拦截,并打印出俩,并不会大程序给干掉,好处:可以知道底层是执行成功了还是失败了

    //好处:如果真的出现了这个问题,会将异常信息打印出来
    //    还会告诉上层,下层是成功了还是失败了
                                                //Exception会抛里面的所有异常,这样子最外层也就只catch一次
    public static void parseDate(String s) throws Exception {//直接抛父类,父类会处理下面所有的异常(推荐,这样子不用一个一个抛,麻烦)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse(s); // 编译时异常，写代码时就报错！
        System.out.println(d);

        InputStream is = new FileInputStream("D:/meinv.png");
    }
}
